Hive入门(一):Hive Shell的基本操作 您所在的位置:网站首页 shell 数据库 Hive入门(一):Hive Shell的基本操作

Hive入门(一):Hive Shell的基本操作

2024-02-24 15:00| 来源: 网络整理| 查看: 265

相关内容: Hive入门(一):Hive Shell的基本操作 Hive入门(二):HQL数据定义 Hive入门(三):HQL数据操作——数据装载与保存 Hive入门(四):HQL查询语句(一) Hive入门(四):HQL查询语句(二)

Hive入门(一):Hive Shell的基本操作

总结Hive基本的命令行操作

进入Hive部署包的bin目录,在命令行输入./hive启动hive cli。

$ cd /user/home/apache-hive-2.2.0-bin/bin $ ./hive 变量和属性 命名空间使用权限描述hivevar读/写用户自定义变量env只读shell环境定义的环境变量,比如~/.bashrc中定义的左右环境变量,如“HADOOP_HOME=/user/stack/hadoop-2.6.0”。hiveconf读/写hive相关的配置属性system读/写java相关的配置属性,比如“system:java.version=1.8.0_40”

set用来显示和修改变量。 显示单个变量。

hive> set system:user.dir; system:user.dir=/home/stack/apache-hive-2.2.0-bin/bin

如果只使用set,则显示所有变量和属性,包括varconf,env,system和hiveconf。如果加上-v还可以显示hadoop相关的信息。

hivevar 创建变量

方法1: 在启动hive时,通过–define key=value 或者 –hivevar key=value的形式创建变量。

$ hive --define testkey=testvalue //或者使用 --hivevar或-d hive> set hivevar:testkey; //此处的hivevar:可省略,即直接使用set hivevar:testkey=testvalue

方法2: 在启动hive后,通过set创建变量。

hive> set hivevar:testkey2=testvalue2; 修改变量 hive> set testkey=newvalue; hive> set testkey; testkey=newvalue

Note: 在Hive处理一条查询语句之前,会将查询语句中的变量替换成相应的值,然后再处理。但是set创建变量时hivevar不可以省略。否则,在执行create table语句时,会报错“AILED: ParseException line 1:23 cannot recognize input near ‘$’ ‘{’ ‘label’ in column name or primary key or foreign key”。

hive> set hivevar:label=id; //不能使用set label=id。 hive> set label; label=id hive> create table student(${hivevar:label} int, name string); hive> describe student; id int name string hive> drop table student; //删除测试表student。 hiveconf

用于进行hive相关的配置。包含两种方式: 方法1: Hive启动时,通过--hiveconf配置。比如配置显示当前所在的数据库,该值默认为false。

./hive --hiveconf hive.cli.print.current.db=true hive (default)>

方法2: Hive启动后,通过set设置。

hive (default)> hive.cli.print.current.db=true hive> HQL执行方式

方法1:启动Hive cli运行。 方法2:通过添加-e的参数执行一次HQL语句。-S参数用来去掉输出中的执行时间“Time taken: seconds”和“OK”,仅保留执行结果。下面的语句将show databases的结果输出到showdbs的文本文件中。然后,用cat输出showdb的内容。

$ hive -S -e "show databases" > ./showdbs $ cat showdbs default testdb

另外,在用set查看属性和变量值时,可以用如下语句进行模糊查询。比如想查询jvm有关的内容。

$ hive -S -e "set" | grep "jvm"

方法三:通过添加-f执行指定文件。首先,先写一个.hql文件。

$ echo "show databases" > ./showdb.hql $

然后启动Hive cli,用source来加载执行.hql文件。

hive> source ./showdb.hql; OK default testdb Time taken: 1.106 seconds, Fetched: 2 row(s)

方法四:在Hive cli启动时通过-i来执行指定文件。这个选项很适合用于添加jar包以及设定Hive相关的配置参数。如下,hive会在Hive部署包存放目录下搜索my.hiverc文件,并自动执行里面的hql语句。因此,启动hive cli后,设置便生效。

$ echo "set hive.cli.print.current.db=true;" > ./my.hiverc $ hive -i my.hiverc hive (default)>

另外,添加jar的形式为ADD JAR /path/my.jar。每条语句依然用;结尾。

Hive shell的其他用法

1.直接在hive shell中执行一些简单的命令,只要在命令前加上!。 比如,显示当前目录。

$ ! pwd; /home/stack/apache-hive-2.2.0-bin/bin

2.直接在Hive shell中操作hdfs。只要去掉命令前面的hdfs即可。 比如,显示warehouse的文件。

hive> dfs -ls /user/hive/warehouse/; Found 1 items drwxrwxrwx - stack supergroup 0 2018-05-15 15:16 /user/hive/warehouse/testdb.db

Note: 在hive shell中操作hdfs更快,因为hdfs dfs的用法每次操作都需要重新启动一个jvm实例,而Hive在同一个进程执行这些操作。

其他

注释: 通过–作为前缀来进行注释。在cli,.hql和.hiverc均适用。比如在.hiverc中添加注释,如下:

-- this is my comment, show current database set hive.cli.print.current.db=true;

历史操作: 最近的100条历史操作保存在$HOME/.hivehistory。

$ vi $HOME/.hivehistory 目录

Hive入门(一):Hive Shell的基本操作 变量和属性 hivevar 创建变量修改变量 hiveconf HQL执行方式Hive shell的其他用法 其他 目录



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有